package org.x.user.service;

import com.baomidou.mybatisplus.extension.service.IService;
import org.x.user.entity.SysLogsDO;
import org.x.user.dto.PageResult;
import org.x.user.query.SysLogsQuery;

/**
 * 审计日志管理
 *
 * @author 夏包包
 * @date 2025-03-08 13:39:03
 */
public interface LogsService extends IService<SysLogsDO> {

    /**
     * 查询所有日志
     *
     * @return
     */
    PageResult<SysLogsDO> allLogs();

    /**
     * 根据日志ID查询日志
     *
     * @param logQuery 审计日志查询对象
     * @return  审计日志信息表实体对象
     */
    SysLogsDO logInfo(SysLogsQuery logQuery);

    /**
     * 根据租户ID查询日志
     *
     * @param logQuery 审计日志查询对象
     * @return
     */
    PageResult<SysLogsDO> logsByTenant(SysLogsQuery logQuery);

    /**
     * 根据操作用户ID查询日志
     *
     * @param logQuery 审计日志查询对象
     * @return
     */
    PageResult<SysLogsDO> logsByUser(SysLogsQuery logQuery);

    /**
     * 根据日志级别查询日志
     *
     * @param logQuery 审计日志查询对象
     * @return
     */
    PageResult<SysLogsDO> logsByLevel(SysLogsQuery logQuery);

    /**
     * 根据时间范围查询日志
     *
     * @param logQuery 审计日志查询对象
     * @return
     */
    PageResult<SysLogsDO> logsByTimeRange(SysLogsQuery logQuery);
}
